package 数组.有多少小于当前数字的数字1365;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.HashMap;

class Solution {
    public int[] smallerNumbersThanCurrent(int[] nums) {
        //使用另一个数组将nums从小到大排序
        int[] arr = new int[nums.length];
        for (int i = 0; i < nums.length; i++) {
            arr[i] = nums[i];
        }
        Arrays.sort(arr);
        //利用hashmap重复会更新的，来记录arr[i]所在位置，即有多少个小于他的书数
        HashMap<Integer, Integer> hs = new HashMap<>();
        for (int i = arr.length - 1; i >= 0; i--) {
            hs.put(arr[i],i);
        }

        //取出答案
        int[] ans = new int[nums.length];
        for (int i = 0; i < ans.length; i++) {
            ans[i] = hs.get(nums[i]);
        }

        return ans;
    }
}
